Software is widely used to control traditional desktop computers as well as many other electronic devices with processors. For example, many portable electronic devices contain processors that are programmed to perform a wide array of functions. While many portable devices are programmed to perform communication or personal entertainment functions that are not traditionally performed by desktop computers, it is often desirable for the portable electronic devices to perform many of the same functions that are performed by traditional desktop computers.
Though a full function portable electronic device is desirable, resource constraints can limit the functions that a portable electronic device can be programmed to perform. As a result, some programs and programming systems may have “compact” versions that are adapted for execution on portable electronic devices.
One example of a compact version of a programming system is the compact “framework” for .NET programs. A .NET framework is provided by Microsoft of Redmond, Wash., USA and is loaded on a device, enabling that device to execute application programs developed to execute under the framework.
Each application program contains instructions that can use methods, properties and events that are recognized by the .NET framework. These instructions are represented in what is sometimes referred to as “Intermediate Language.” The intermediate language is not directly executable on a processor but may be derived by partially compiling source code to resolve references to variables, convert high level expressions in the source code into groups of lower level instructions recognized by the framework and to otherwise simplify the code so that it can be more easily executed.
The application program is executed using a series of calls from the intermediate language instructions to classes or libraries created by the user or third parties or to components of the framework. Because the framework is written in machine code that can be executed by the processor, when a call is made to a component of the framework, the framework performs the desired methods and implements the required properties or events.
It is often desirable for the same application program to execute either on a desktop computer or a portable device. If the framework on the portable device implements the same methods, properties and events as the framework on the desktop computer, a single application program could be prepared for either. However, resource constraints on the portable electronic device sometimes preclude the full framework from being implemented on the portable electronic device.